টু-ডু লিস্ট অ্যাপ

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming) প্র্যাকটিস প্রোজেক্টস |
243
243

টু-ডু লিস্ট অ্যাপ হলো একটি জনপ্রিয় প্র্যাকটিস প্রোজেক্ট, যা ব্যবহারকারীদের বিভিন্ন টাস্ক বা কাজ সংরক্ষণ, আপডেট, মুছা এবং প্রদর্শনের সুযোগ দেয়। এই প্রজেক্টের মাধ্যমে প্রোগ্রামিংয়ের বেসিক ধারণা যেমন ক্লাস, অবজেক্ট, এবং মেনু ড্রাইভেন প্রোগ্রামিং ইত্যাদি শেখা যায়।

টু-ডু লিস্ট অ্যাপের প্রধান বৈশিষ্ট্যসমূহ

  1. নতুন টাস্ক যোগ করা: নতুন কাজ বা টাস্ক যোগ করা।
  2. টাস্ক দেখানো: সব টাস্ক প্রদর্শন করা।
  3. টাস্ক আপডেট করা: কোনো টাস্কের বিস্তারিত আপডেট করা।
  4. টাস্ক মুছে ফেলা: টাস্ক তালিকা থেকে কোনো টাস্ক মুছে ফেলা।
  5. টাস্ক সম্পন্ন চিহ্নিত করা: কোনো টাস্ক সম্পন্ন হলে তা চিহ্নিত করা।

উদাহরণ: C++ এ টু-ডু লিস্ট অ্যাপ তৈরি

নিচে একটি বেসিক টু-ডু লিস্ট অ্যাপ তৈরি করার কোড দেওয়া হলো, যেখানে একটি Task ক্লাসের মাধ্যমে টাস্কের বৈশিষ্ট্য সংজ্ঞায়িত করা হয়েছে এবং টাস্ক ম্যানেজমেন্টের জন্য বিভিন্ন মেথড তৈরি করা হয়েছে।

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Task {
private:
    int id;
    string title;
    bool completed;

public:
    Task(int id, string title) : id(id), title(title), completed(false) {}

    int getId() const { return id; }
    string getTitle() const { return title; }
    bool isCompleted() const { return completed; }

    void markComplete() { completed = true; }
    void updateTitle(const string& newTitle) { title = newTitle; }

    void display() const {
        cout << "ID: " << id << "\nTitle: " << title
             << "\nStatus: " << (completed ? "Completed" : "Pending") << endl;
    }
};

class TodoList {
private:
    vector<Task> tasks;
    int nextId = 1;

public:
    void addTask(const string& title) {
        tasks.emplace_back(nextId++, title);
        cout << "Task added successfully!" << endl;
    }

    void displayTasks() const {
        if (tasks.empty()) {
            cout << "No tasks available." << endl;
            return;
        }

        for (const auto& task : tasks) {
            task.display();
            cout << "---------------------" << endl;
        }
    }

    void markTaskComplete(int id) {
        for (auto& task : tasks) {
            if (task.getId() == id) {
                task.markComplete();
                cout << "Task marked as completed." << endl;
                return;
            }
        }
        cout << "Task not found!" << endl;
    }

    void updateTask(int id, const string& newTitle) {
        for (auto& task : tasks) {
            if (task.getId() == id) {
                task.updateTitle(newTitle);
                cout << "Task updated successfully!" << endl;
                return;
            }
        }
        cout << "Task not found!" << endl;
    }

    void deleteTask(int id) {
        for (auto it = tasks.begin(); it != tasks.end(); ++it) {
            if (it->getId() == id) {
                tasks.erase(it);
                cout << "Task deleted successfully!" << endl;
                return;
            }
        }
        cout << "Task not found!" << endl;
    }
};

int main() {
    TodoList todoList;
    int choice, id;
    string title;

    do {
        cout << "\nTo-Do List\n";
        cout << "1. Add Task\n2. Display All Tasks\n3. Mark Task as Complete\n4. Update Task\n5. Delete Task\n6. Exit\n";
        cout << "Enter your choice: ";
        cin >> choice;

        switch (choice) {
            case 1:
                cout << "Enter task title: ";
                cin.ignore();
                getline(cin, title);
                todoList.addTask(title);
                break;
            case 2:
                todoList.displayTasks();
                break;
            case 3:
                cout << "Enter task ID to mark as complete: ";
                cin >> id;
                todoList.markTaskComplete(id);
                break;
            case 4:
                cout << "Enter task ID to update: ";
                cin >> id;
                cout << "Enter new title: ";
                cin.ignore();
                getline(cin, title);
                todoList.updateTask(id, title);
                break;
            case 5:
                cout << "Enter task ID to delete: ";
                cin >> id;
                todoList.deleteTask(id);
                break;
            case 6:
                cout << "Exiting..." << endl;
                break;
            default:
                cout << "Invalid choice. Please try again." << endl;
        }
    } while (choice != 6);

    return 0;
}

প্রোগ্রাম ব্যাখ্যা

Task ক্লাস:

  • id, title, এবং completed প্রোপার্টি রয়েছে।
  • markComplete() মেথডে টাস্ককে সম্পন্ন হিসেবে চিহ্নিত করা যায়।
  • updateTitle() মেথডে টাস্কের শিরোনাম আপডেট করা যায়।
  • display() মেথডে টাস্কের তথ্য প্রদর্শন করা হয়।

TodoList ক্লাস:

  • tasks নামে একটি ভেক্টর আছে, যেখানে সব টাস্ক অবজেক্ট রাখা হয়।
  • addTask() নতুন টাস্ক যোগ করে।
  • displayTasks() সব টাস্ক দেখায়।
  • markTaskComplete() নির্দিষ্ট আইডি অনুযায়ী টাস্ককে সম্পন্ন হিসেবে চিহ্নিত করে।
  • updateTask() নির্দিষ্ট আইডি অনুযায়ী টাস্কের শিরোনাম আপডেট করে।
  • deleteTask() নির্দিষ্ট আইডি অনুযায়ী টাস্ক মুছে ফেলে।

main ফাংশন:

  • এটি মেনু ভিত্তিক একটি সিস্টেম তৈরি করে, যা ব্যবহারকারীকে বিভিন্ন অপশন প্রদান করে এবং ব্যবহারকারী প্রদত্ত অপশন অনুযায়ী কার্য সম্পন্ন করে।

ফিচার আপগ্রেডের সম্ভাবনা

  1. ফাইল সিস্টেমে সংরক্ষণ: টাস্কগুলোকে একটি ফাইলে সংরক্ষণ করা যেতে পারে, যাতে প্রোগ্রাম বন্ধ করার পরেও টাস্কের তালিকা সংরক্ষিত থাকে।
  2. GUI ইন্টারফেস: প্রোগ্রামটিকে GUI ভিত্তিক করতে পারেন, যাতে এটি আরও ব্যবহারবান্ধব হয়।
  3. টাইম সেটিং এবং রিমাইন্ডার: নির্দিষ্ট সময়ে টাস্কের জন্য রিমাইন্ডার ফিচার যুক্ত করা যায়।
  4. টাস্কের প্রায়োরিটি: টাস্ককে উচ্চ, মধ্যম, এবং নিম্ন প্রায়োরিটি ভিত্তিক করতে পারেন, যাতে ব্যবহারকারীর জন্য গুরুত্বপূর্ণ কাজগুলিকে সহজে সনাক্ত করা যায়।

এই বেসিক টু-ডু লিস্ট অ্যাপটি প্রোগ্রামিংয়ের বেসিক ধারণা যেমন ক্লাস, অবজেক্ট, এবং ভেক্টর ব্যবহারের চমৎকার অনুশীলন প্রদান করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion